home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / MTRECAL.PAK / MTRECALC.CPP < prev    next >
C/C++ Source or Header  |  1997-05-06  |  4KB  |  156 lines

  1. // mtrecalc.cpp : Defines the class behaviors for the application.
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1995 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13. #include "stdafx.h"
  14. #include "mtrecalc.h"
  15. #include "mainfrm.h"
  16. #include "calcthrd.h"
  17. #include "recaldoc.h"
  18. #include "recalcvw.h"
  19.  
  20. #ifdef _DEBUG
  21. #undef THIS_FILE
  22. static char BASED_CODE THIS_FILE[] = __FILE__;
  23. #endif
  24.  
  25. /////////////////////////////////////////////////////////////////////////////
  26. // CRecalcApp
  27.  
  28. BEGIN_MESSAGE_MAP(CRecalcApp, CWinApp)
  29.     //{{AFX_MSG_MAP(CRecalcApp)
  30.     ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
  31.     //}}AFX_MSG_MAP
  32.     // Standard file based document commands
  33.     ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
  34.     ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
  35.     // Standard print setup command
  36.     ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
  37. END_MESSAGE_MAP()
  38.  
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CRecalcApp construction
  41.  
  42. CRecalcApp::CRecalcApp()
  43. {
  44. }
  45.  
  46. /////////////////////////////////////////////////////////////////////////////
  47. // The one and only CRecalcApp object
  48.  
  49. CRecalcApp theApp;
  50.  
  51. /////////////////////////////////////////////////////////////////////////////
  52. // CRecalcApp initialization
  53.  
  54. BOOL CRecalcApp::InitInstance()
  55. {
  56.     // WIN32 multi-threading APIs are not available on non-NT versions
  57.     // of Windows less than Windows version 4.0.
  58.     if ((::GetVersion() & 0x80000000) && (BYTE(::GetVersion()) < 4))
  59.     {
  60.         AfxMessageBox(IDS_CANNOT_RUN_ON_16BIT_WINDOWS_LT_4);
  61.         return FALSE;
  62.     }
  63.  
  64.     // Standard initialization
  65.  
  66.     Enable3dControls();
  67.  
  68.     LoadStdProfileSettings();  // Load standard INI file options (including MRU)
  69.  
  70.     // Register document templates
  71.  
  72.     CMultiDocTemplate* pDocTemplate;
  73.     pDocTemplate = new CMultiDocTemplate(
  74.         IDR_RECALCTYPE,
  75.         RUNTIME_CLASS(CRecalcDoc),
  76.         RUNTIME_CLASS(CMDIChildWnd),          // standard MDI child frame
  77.         RUNTIME_CLASS(CRecalcView));
  78.     AddDocTemplate(pDocTemplate);
  79.  
  80.     // create main MDI Frame window
  81.     CMainFrame* pMainFrame = new CMainFrame;
  82.     if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
  83.         return FALSE;
  84.     m_pMainWnd = pMainFrame;
  85.  
  86.     // Enable DDE Execute open
  87.     EnableShellOpen();
  88.     RegisterShellFileTypes(TRUE);
  89.  
  90.     // Parse command line for standard shell commands, DDE, file open
  91.     CCommandLineInfo cmdInfo;
  92.     ParseCommandLine(cmdInfo);
  93.  
  94.     // Dispatch commands specified on the command line
  95.     if (!ProcessShellCommand(cmdInfo))
  96.         return FALSE;
  97.  
  98.     // Enable drag/drop open
  99.     m_pMainWnd->DragAcceptFiles();
  100.     pMainFrame->ShowWindow(m_nCmdShow);
  101.     pMainFrame->UpdateWindow();
  102.  
  103.     return TRUE;
  104. }
  105.  
  106. /////////////////////////////////////////////////////////////////////////////
  107. // CAboutDlg dialog used for App About
  108.  
  109. class CAboutDlg : public CDialog
  110. {
  111. public:
  112.     CAboutDlg();
  113.  
  114. // Dialog Data
  115.     //{{AFX_DATA(CAboutDlg)
  116.     enum { IDD = IDD_ABOUTBOX };
  117.     //}}AFX_DATA
  118.  
  119. // Implementation
  120. protected:
  121.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  122.     //{{AFX_MSG(CAboutDlg)
  123.         // No message handlers
  124.     //}}AFX_MSG
  125.     DECLARE_MESSAGE_MAP()
  126. };
  127.  
  128. CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
  129. {
  130.     //{{AFX_DATA_INIT(CAboutDlg)
  131.     //}}AFX_DATA_INIT
  132. }
  133.  
  134. void CAboutDlg::DoDataExchange(CDataExchange* pDX)
  135. {
  136.     CDialog::DoDataExchange(pDX);
  137.     //{{AFX_DATA_MAP(CAboutDlg)
  138.     //}}AFX_DATA_MAP
  139. }
  140.  
  141. BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
  142.     //{{AFX_MSG_MAP(CAboutDlg)
  143.         // No message handlers
  144.     //}}AFX_MSG_MAP
  145. END_MESSAGE_MAP()
  146.  
  147. // App command to run the dialog
  148. void CRecalcApp::OnAppAbout()
  149. {
  150.     CAboutDlg aboutDlg;
  151.     aboutDlg.DoModal();
  152. }
  153.  
  154. /////////////////////////////////////////////////////////////////////////////
  155. // CRecalcApp commands
  156.